package com.example.easyexcel.dto;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;

@Data
public class DataIndex {

    // ========== Excel映射字段（与Excel列顺序严格对应） ==========
    @ExcelProperty(value = "指标中文名称", index = 0)
    private String dataIndexCnName;

    @ExcelProperty(value = "指标别名", index = 1)
    private String dataIndexAlias;

    @ExcelProperty(value = "指标英文名称", index = 2)
    private String dataIndexEnName;

    @ExcelProperty(value = "口径说明", index = 3)
    private String coverageDescr;

    @ExcelProperty(value = "指标状态", index = 4) // 对应Excel第5列（index=4）
    private String dataIndexSc; // 存储Excel中的状态字符串（发布/未发布）

    @ExcelProperty(value = "指标类型", index = 5) // 对应Excel第6列（index=5）
    private String dataIndexTc; // 存储Excel中的类型字符串（基础指标/组合指标）

    @ExcelProperty(value = "指标计算表达式", index = 6)
    private String dataIndexCalcExpression;

    @ExcelProperty(value = "数据类型", index = 7)
    private String dataType;

    @ExcelProperty(value = "格式化规则", index = 8)
    private String formatRule;

    @ExcelProperty(value = "单位", index = 9)
    private String dataIndexUnits;

    @ExcelProperty(value = "最小粒度", index = 10)
    private String dataIndexMinGranularity;

    // ========== 数据库专用字段（Excel忽略） ==========
    @ExcelIgnore
    private Long dataIndexId;

    @ExcelIgnore
    private String creatorName;

    @ExcelIgnore
    private String modifierName;

    @ExcelIgnore
    private Integer dataIndexScCode; // 转换后的状态码（1=发布，0=未发布）

    @ExcelIgnore
    private Integer dataIndexTcCode; // 转换后的类型码（1=基础指标，2=组合指标）

    @ExcelIgnore
    private LocalDateTime createTime;

    @ExcelIgnore
    private LocalDateTime updateTime;

}